ASP.Net MVC-তে API Controllers এবং Routing RESTful Web API তৈরি এবং পরিচালনার একটি গুরুত্বপূর্ণ অংশ। API Controller ডেটা বা রিসোর্স এক্সপোজ করে, এবং Routing নিশ্চিত করে যে এই API-তে সঠিক URL-এর মাধ্যমে অ্যাক্সেস পাওয়া যায়।
API Controller ASP.Net MVC-তে এমন একটি বিশেষ ধরনের Controller যা সাধারণত JSON বা XML ফরম্যাটে ডেটা রিটার্ন করে। এগুলো Web API-এর জন্য ব্যবহৃত হয় এবং ডেটা প্রক্রিয়াকরণ ও এক্সপোজ করতে সাহায্য করে।
API Controller তৈরি করতে Controller
ক্লাসটি ApiController
ক্লাস থেকে ইনহেরিট করতে হবে।
[Route("api/[controller]")]
[ApiController]
public class StudentsController : ControllerBase
{
private readonly ApplicationDbContext _context;
public StudentsController(ApplicationDbContext context)
{
_context = context;
}
// GET: api/Students
[HttpGet]
public IActionResult GetAllStudents()
{
var students = _context.Students.ToList();
return Ok(students);
}
// GET: api/Students/5
[HttpGet("{id}")]
public IActionResult GetStudentById(int id)
{
var student = _context.Students.Find(id);
if (student == null)
{
return NotFound();
}
return Ok(student);
}
// POST: api/Students
[HttpPost]
public IActionResult CreateStudent([FromBody] Student student)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
_context.Students.Add(student);
_context.SaveChanges();
return CreatedAtAction(nameof(GetStudentById), new { id = student.Id }, student);
}
// PUT: api/Students/5
[HttpPut("{id}")]
public IActionResult UpdateStudent(int id, [FromBody] Student student)
{
if (id != student.Id)
{
return BadRequest();
}
_context.Students.Update(student);
_context.SaveChanges();
return NoContent();
}
// DELETE: api/Students/5
[HttpDelete("{id}")]
public IActionResult DeleteStudent(int id)
{
var student = _context.Students.Find(id);
if (student == null)
{
return NotFound();
}
_context.Students.Remove(student);
_context.SaveChanges();
return NoContent();
}
}
Routing নিশ্চিত করে যে API-এর নির্দিষ্ট URL ডেটার সাথে সম্পর্কিত হয়। API Controllers এর ক্ষেত্রে Routing কনফিগার করতে Attribute Routing বেশি ব্যবহৃত হয়। এটি প্রতিটি অ্যাকশন মেথডের জন্য একটি নির্দিষ্ট URL বা Route নির্ধারণ করতে দেয়।
Attribute Routing API Controller-এ নির্ধারিত অ্যাকশন মেথডে সরাসরি Route অ্যাট্রিবিউট ব্যবহার করে।
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
[HttpGet]
public IActionResult GetAllProducts()
{
// GET: api/Products
}
[HttpGet("{id}")]
public IActionResult GetProductById(int id)
{
// GET: api/Products/5
}
[HttpPost]
public IActionResult CreateProduct([FromBody] Product product)
{
// POST: api/Products
}
}
[Route("api/[controller]")]
: এখানে [controller]
টোকেন ProductsController
এর Products অংশকে URL-এ রূপান্তরিত করে।[HttpGet("{id}")]
: নির্দিষ্ট id
সহ URL এর জন্য অ্যাকশন মেথড নির্ধারণ করে।Custom Routes ব্যবহার করে API Controller-এ নির্দিষ্ট নামকরণের কনভেনশন যুক্ত করা যায়।
[Route("api/v1/products")]
[ApiController]
public class ProductsController : ControllerBase
{
[HttpGet("list")]
public IActionResult GetProducts()
{
// GET: api/v1/products/list
}
[HttpGet("details/{id}")]
public IActionResult GetProductDetails(int id)
{
// GET: api/v1/products/details/5
}
}
ASP.Net MVC-তে Routing কনফিগারেশন Startup.cs ফাইলে MapControllers()
ব্যবহার করে করা হয়।
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
v1
, v2
ইত্যাদি যোগ করুন।/api/students
(ভুল: /api/getstudents
)।ASP.Net MVC-তে API Controllers এবং Routing ওয়েব API তৈরি এবং পরিচালনার একটি গুরুত্বপূর্ণ অংশ। API Controller ডেটা প্রসেসিং এবং রিসোর্স এক্সপোজ করতে সহায়ক, এবং Routing নির্দিষ্ট URL-এর মাধ্যমে API অ্যাক্সেস নিশ্চিত করে। Attribute Routing এবং Middleware-এর মাধ্যমে API Routing আরও কার্যকর এবং ডেভেলপারদের জন্য সহজ হয়ে ওঠে।
common.read_more